package com.sky.module.system.permission.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sky.module.system.permission.domain.entity.Permission;
import com.sky.module.system.permission.domain.vo.PermissionQueryVo;
import com.sky.module.system.permission.domain.vo.RolePermissionVo;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author zsg
 * @since 2023-02-20
 */
public interface PermissionService extends IService<Permission> {
    //    根据用户id查询权限菜单列表
    public List<Permission> findPermissionListByUserId(Long userId);

    /***
     * @description 查询菜单列表方法
     * @param permissionQueryVo
     * @return java.util.List<com.zsg.entity.Permission>
     * @date 2023/2/22 12:26
     *
     */
    List<Permission> findPermissionList(PermissionQueryVo permissionQueryVo);

    /***
     * @description 查询上级菜单列表
     *
     * @return java.util.List<com.zsg.entity.Permission>
     * @date 2023/2/22 12:28
     *
     */
    List<Permission> findParentPermissionList();

    /***
     * @description 判断菜单是否有子菜单
     * @param id
     * @return boolean
     * @date 2023/2/22 14:26
     *
     */
    boolean hasChildrenOfPermission(Long id);


    /***
     * @description 查询权限菜单树
     *
     * @return com.zsg.vo.RolePermissionVo
     * @date 2023/2/23 10:40
     *
     */
    RolePermissionVo findPermissionTree(Long userId, Long roleId);


}
